// 工具函数，都放在这里
import React from "react";
import qs from "query-string";


export const log = console.log.bind(console);
export const info = console.info.bind(console);
export const warn = console.warn.bind(console);
export const error = console.error.bind(console);

// export function getQueryString(name: string) {
    // let params = new URLSearchParams(location.search.substring(1));
    // return params.get(name);
//     return qs.parse(location.search)[name]
// }

/**
 * 
 * @param params {name:"talent.tan", id:666666} => name=talent.tan&id=666666
 * @returns 
 */
// export function param(params, options?) {
    // if (params) {
    //     let ret = "";
    //     let urlparams = new URLSearchParams("");
    //     for (const key in params) {
    //         if (Object.prototype.hasOwnProperty.call(params, key)) {
    //             const value = params[key];
    //             urlparams.append(key, value);
    //         }
    //     }
    //     ret = urlparams.toString();
    //     log(ret)
    //     return ret;
    // }
    // return ""

//     return qs.stringify(params, options);
// }

// function changeURLArg(url, arg, arg_val) {
//     let pattern = arg + '=([^&]*)';
//     let replaceText = ""
//     if (arg_val) {
//         replaceText = arg + '=' + arg_val;
//     }
//     if (url.match(pattern)) {
//         var tmp = '/(' + arg + '=)([^&]*)/gi';
//         tmp = url.replace(eval(tmp), replaceText);
//         return tmp;
//     } else {
//         if (url.match('[\?]')) {
//             return url + '&' + replaceText;
//         } else {
//             return url + '?' + replaceText;
//         }
//     }
// }

/**
 * 示例
 * changeURLArgs([
        ['pageNumber', pageNumber], 
        ['pageSize', pageSize]
    ]);
 * @param {*} arrs 
 */
// export function changeURLArgs(arrs) {
//     log(arrs)
    // var newurl = window.location.href;
    // for (var index = 0; index < arrs.length; index++) {
    //     var arr = arrs[index];
    //     // if (arr[1] != null) {
    //         newurl = changeURLArg(newurl, arr[0], arr[1]);
    //     // }
    // }
    // history.pushState(null, null, newurl);
// }

/**
 * 无刷新更新查询参数
 * demo:
 * http://localhost/path?tio_session=8888888888#/demo/PageDemo
 * 
 * updateUrlQuery({tio_session:null})
 * http://localhost/path#/demo/PageDemo
 * 
 * updateUrlQuery({tio_session:'9900'})
 * http://localhost/path?tio_session=9900#/demo/PageDemo
 * 
 * 
 * test url: http://localhost:9527/tio-vite-react/?tio_session=8888888888#/demo/PageDemo
 * @param params 
 */
export function replaceUrlQuery(params) {
    // log(params)
    // var newurl = window.location.href;
    // for (var index = 0; index < arrs.length; index++) {
    //     var arr = arrs[index];
    //     // if (arr[1] != null) {
    //         newurl = changeURLArg(newurl, arr[0], arr[1]);
    //     // }
    // }
    // history.pushState(null, null, newurl);

    let ped = qs.parseUrl(location.href, {parseFragmentIdentifier: true})
    // let {url, query, fragmentIdentifier} = ped
    Object.assign(ped.query, params)
    let newurl = qs.stringifyUrl(ped, {encode:false, skipNull:true})
    history.pushState(null, null, newurl);

}